package com.piggy.logi.sys.domain;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 代收货款收款记录对象 logi_waybill_agent_pay_record
 *
 * @author fengxy
 * @date 2023/10/17 20:29
 **/
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("logi_waybill_agent_pay_record")
public class LogiWaybillAgentPayRecord implements Serializable {

    private static final long serialVersionUID=1L;

    /** 主键 */
    @ApiModelProperty("主键")
    @TableId(value = "id")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /** 代收货款记录ID */
    @ApiModelProperty("代收货款记录ID")
    private Long agentPayId;

    /** 付款人 */
    @ApiModelProperty("付款人")
    private String payer;

    /** 付款人账号 */
    @ApiModelProperty("付款人账号")
    private String payerAccount;

    /** 付款人账号类型（数据字典：account_type） */
    @ApiModelProperty("付款人账号类型（数据字典：account_type）")
    private String payerAccountType;

    /** 支付方式（数据字典：pay_channel） */
    @ApiModelProperty("支付方式（数据字典：pay_channel）")
    private String payChannel;

    /** 支付金额 */
    @ApiModelProperty("支付金额")
    private BigDecimal payAmount;

    /** 付款时间 */
    @ApiModelProperty("付款时间")
    private Date payTime;

    /** 支付凭证 */
    @ApiModelProperty("支付凭证")
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String payVoucher;

    /** 备注 */
    @ApiModelProperty("备注")
    private String remark;

    /** 创建者 */
    @ApiModelProperty("创建者")
    private String createBy;

    /** 创建时间 */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty("更新者")
    private String updateBy;

    /** 更新时间 */
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT)
    private Date updateTime;

}
